package com.blrs.domain;

import java.util.Date;
import java.util.List;

import com.blrs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.blrs.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 项目信息对象 project_info
 * 
 * @author ruoyi
 * @date 2023-11-30
 */
public class ProjectInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    private List<ProjectPaymentMethod> projectPaymentMethods;

    /** 咨询差旅费 */
    private String consultAmount;
    /** 其他费用 */
    private String elseAmount;
    /** 预算总和 */
    private String sumAmount;
    /** 阶段名称 */
    private String stageName;
    /** 变更说明 */
    private String changeNote;


    /** 评审人id */
    private String reviewerId;

    /** 评审人 */
    private String reviewer;

    /** 项目id */
    private String projectId;

    /** 立项方式 */
    private String projectType;

    /** 备注 */
    private String node;

    /** 主分类 */
    private String classificationId;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 合同id */
    private String contractId;

    /** 合同名称 */
    private String contractName;
    /** 客户id */
    private String enterpriseId;

    /** 客户名称 */
    private String enterpriseName;
    /** 项目负责人id */
    private String projectLeaderId;

    /** 项目负责人 */
    private String projectLeader;

    /** 执行人id */
    private String executorId;

    /** 执行人 */
    private String executorName;

    /** 计划开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startTime;

    /** 计划结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 启动时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "启动时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date attackTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTime;

    /** 状态（立项,实施,审核,交付,完成） */
    //@Excel(name = "状态", readConverterExp = "立项1,实施2,审核3,交付4,完成5,终止6")
    private String state;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date operateTime;

    /** 操作人id */
    private String operateId;

    /** 操作人姓名 */
    private String operateName;

    /** 部门id */
    private String departmentId;

    /** 部门名称 */
    private String departmentName;

    /** 组织机构id */
    private String organizationId;

    /** 组织机构名称 */
    private String organizationName;

    /** 创建人id */
    private String creationId;

    /** 创建人姓名 */
    private String creationName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date creationTime;

    /** 归属于 */
    private String belongTo;

    /** 是否删除 */
    private String delFlag;
    private String covenantId;
    private String idPath;
    private String sign;
    private String contractReviewer;
    private String budgetAmount;
    private String totalCost;
    private String customerSatisfaction;
    private String projectStage;
    private String recipientType;

    //工艺模板id
    private String currentTemplateId;

    public String getCurrentTemplateId() {
        return currentTemplateId;
    }

    public void setCurrentTemplateId(String currentTemplateId) {
        this.currentTemplateId = currentTemplateId;
    }

    //收款方式
    public List<ProjectPaymentMethod> getProjectPaymentMethods() {
        return projectPaymentMethods;
    }

    public void setProjectPaymentMethods(List<ProjectPaymentMethod> projectPaymentMethods) {
        this.projectPaymentMethods = projectPaymentMethods;
    }
    public String getConsultAmount() {
        return consultAmount;
    }
    public void setConsultAmount(String consultAmount) {
        this.consultAmount = consultAmount;
    }

    public String getElseAmount() {
        return elseAmount;
    }
    public void setElseAmount(String elseAmount) {
        this.elseAmount = elseAmount;
    }

    public String getRecipientType() {
        return recipientType;
    }

    public void setRecipientType(String recipientType) {
        this.recipientType = recipientType;
    }

    public String getChangeNote() {
        return changeNote;
    }

    public void setChangeNote(String changeNote) {
        this.changeNote = changeNote;
    }

    public String getSumAmount() {
        return sumAmount;
    }

    public void setSumAmount(String sumAmount) {
        this.sumAmount = sumAmount;
    }

    public void setStageName(String stageName)
    {
        this.stageName = stageName;
    }

    public String getStageName()
    {
        return stageName;
    }


    public String getProjectStage() {
        return projectStage;
    }

    public void setProjectStage(String projectStage) {
        this.projectStage = projectStage;
    }

    public void setReviewer(String reviewer)
    {
        this.reviewer = reviewer;
    }

    public String getReviewer()
    {
        return reviewer;
    }

    public void setReviewerId(String reviewerId)
    {
        this.reviewerId = reviewerId;
    }

    public String getReviewerId()
    {
        return reviewerId;
    }

    public void setProjectType(String projectType)
    {
        this.projectType = projectType;
    }

    public String getProjectType()
    {
        return projectType;
    }

    public void setNode(String node)
    {
        this.node = node;
    }

    public String getNode()
    {
        return node;
    }

    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setClassificationId(String classificationId) 
    {
        this.classificationId = classificationId;
    }

    public String getClassificationId() 
    {
        return classificationId;
    }
    public void setProjectNumber(String projectNumber) 
    {
        this.projectNumber = projectNumber;
    }

    public String getProjectNumber() 
    {
        return projectNumber;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setContractId(String contractId) 
    {
        this.contractId = contractId;
    }

    public String getContractId() 
    {
        return contractId;
    }
    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }

    public void setEnterpriseId(String enterpriseId)
    {
        this.enterpriseId = enterpriseId;
    }

    public String getEnterpriseId()
    {
        return enterpriseId;
    }
    public void setEnterpriseName(String enterpriseName)
    {
        this.enterpriseName = enterpriseName;
    }

    public String getEnterpriseName()
    {
        return enterpriseName;
    }

    public void setProjectLeaderId(String projectLeaderId)
    {
        this.projectLeaderId = projectLeaderId;
    }

    public String getProjectLeaderId()
    {
        return projectLeaderId;
    }
    public void setProjectLeader(String projectLeader) 
    {
        this.projectLeader = projectLeader;
    }

    public String getProjectLeader() 
    {
        return projectLeader;
    }
    public void setExecutorId(String executorId)
    {
        this.executorId = executorId;
    }

    public String getExecutorId()
    {
        return executorId;
    }
    public void setExecutorName(String executorName) 
    {
        this.executorName = executorName;
    }

    public String getExecutorName() 
    {
        return executorName;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setAttackTime(Date attackTime) 
    {
        this.attackTime = attackTime;
    }

    public Date getAttackTime() 
    {
        return attackTime;
    }
    public void setCompleteTime(Date completeTime) 
    {
        this.completeTime = completeTime;
    }

    public Date getCompleteTime() 
    {
        return completeTime;
    }
    public void setState(String state) 
    {
        this.state = state;
    }

    public String getState() 
    {
        return state;
    }
    public void setOperateTime(Date operateTime) 
    {
        this.operateTime = operateTime;
    }

    public Date getOperateTime() 
    {
        return operateTime;
    }
    public void setOperateId(String operateId)
    {
        this.operateId = operateId;
    }

    public String getOperateId()
    {
        return operateId;
    }
    public void setOperateName(String operateName) 
    {
        this.operateName = operateName;
    }

    public String getOperateName() 
    {
        return operateName;
    }
    public void setDepartmentId(String departmentId)
    {
        this.departmentId = departmentId;
    }

    public String getDepartmentId()
    {
        return departmentId;
    }
    public void setDepartmentName(String departmentName) 
    {
        this.departmentName = departmentName;
    }

    public String getDepartmentName() 
    {
        return departmentName;
    }
    public void setOrganizationId(String organizationId)
    {
        this.organizationId = organizationId;
    }

    public String getOrganizationId()
    {
        return organizationId;
    }
    public void setOrganizationName(String organizationName) 
    {
        this.organizationName = organizationName;
    }

    public String getOrganizationName() 
    {
        return organizationName;
    }
    public void setCreationId(String creationId)
    {
        this.creationId = creationId;
    }

    public String getCreationId()
    {
        return creationId;
    }
    public void setCreationName(String creationName) 
    {
        this.creationName = creationName;
    }

    public String getCreationName() 
    {
        return creationName;
    }
    public void setCreationTime(Date creationTime) 
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime() 
    {
        return creationTime;
    }
    public void setBelongTo(String belongTo)
    {
        this.belongTo = belongTo;
    }

    public String getBelongTo()
    {
        return belongTo;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public String getCovenantId() {
        return covenantId;
    }

    public void setCovenantId(String covenantId) {
        this.covenantId = covenantId;
    }

    public String getIdPath() {
        return idPath;
    }

    public void setIdPath(String idPath) {
        this.idPath = idPath;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getContractReviewer() {
        return contractReviewer;
    }

    public void setContractReviewer(String contractReviewer) {
        this.contractReviewer = contractReviewer;
    }

    public String getBudgetAmount() {
        return budgetAmount;
    }

    public void setBudgetAmount(String budgetAmount) {
        this.budgetAmount = budgetAmount;
    }

    public String getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(String totalCost) {
        this.totalCost = totalCost;
    }

    public String getCustomerSatisfaction() {
        return customerSatisfaction;
    }

    public void setCustomerSatisfaction(String customerSatisfaction) {
        this.customerSatisfaction = customerSatisfaction;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("projectId", getProjectId())
            .append("classificationId", getClassificationId())
            .append("projectNumber", getProjectNumber())
            .append("projectName", getProjectName())
            .append("contractId", getContractId())
            .append("contractName", getContractName())
            .append("projectLeaderId", getProjectLeaderId())
            .append("projectLeader", getProjectLeader())
            .append("executorId", getExecutorId())
            .append("executorName", getExecutorName())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("attackTime", getAttackTime())
            .append("completeTime", getCompleteTime())
            .append("state", getState())
            .append("operateTime", getOperateTime())
            .append("operateId", getOperateId())
            .append("operateName", getOperateName())
            .append("departmentId", getDepartmentId())
            .append("departmentName", getDepartmentName())
            .append("organizationId", getOrganizationId())
            .append("organizationName", getOrganizationName())
            .append("creationId", getCreationId())
            .append("creationName", getCreationName())
            .append("creationTime", getCreationTime())
            .append("belongTo", getBelongTo())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
